In recent years, network communication services have expanded and increased in popularity around the world. Many advanced networks offer wired and wireless communication services for data communications, voice calls, and messaging services. The data communication services enable users of communication devices to surf the world wide web via web browsers, for example, as well as enable applications running on the communication devices to connect to remote network devices or servers to upload or download content and information.
Network communication sockets provide a convenient means for applications on one communication device to communicate across a network with applications running on other communication devices, such as other network-connected user equipment devices and servers. The network communication sockets on the various communication devices are managed by network socket application programming interfaces (API) running on each device. In order to communicate with an application on a remote device, an application running on one device sends to the network socket API running on the one device a message identifying a particular network socket. The local network socket API manages a communication link to the remote device that is associated with the particular socket, and ensures that the message is transmitted across the communication link to the application on the remote device. The network communication sockets thus provide a level of network-abstraction that enables applications on the various devices to communicate with each other across the network without requiring the applications themselves to manage the cross-network communication links used by the sockets.
The network communication sockets, however, provide little or no information about the communication links used by the sockets and socket APIs for communication across the network. Thus, applications using communication sockets for communication generally do not have access to information regarding the particular type(s) of communication links used by sockets, the network bandwidth available through the communication links, or the jitter, delay, or other performance parameters of the communication links. Hence, a need exists for systems and methods for providing applications using network communication sockets for communication with information about the communication links and the performance of the communication links used by the sockets for communication across the network.